/**
 * 检测 两个node 的 上一级位置影响元素 是否相同 (body)
 * @param {Element} ela
 * @param {Element} elb
 * @returns  {object} {sameOffsetNode,isSameOffsetNode}
 */
function sameOffsetNode(ela, elb) {
  if (
    ela != undefined &&
    elb != undefined &&
    ela.nodeType == 1 &&
    elb.nodeType == 1
  ) {
    let aOffsetNode = getOffsetParentNode(ela);
    let bOffsetNode = getOffsetParentNode(elb);
    if (aOffsetNode == bOffsetNode) {
      return {
        sameOffsetNode: aOffsetNode,
        isSameOffsetNode: aOffsetNode.localName == 'body' ? 'only body' : true,
      };
    }
  }
  return {
    sameOffsetNode: undefined,
    isSameOffsetNode: false,
  };
}

/**
 * 获取 上一级 位置影响元素
 * @param {Element} el
 * @returns Element
 */
function getOffsetParentNode(el) {
  let elclone = el;
  elclone = elclone['offsetParent'];
  return elclone;
}

// /**
//  * 比较元素 是否 有共同的 位置影响级元素 body 除外
//  * @param {Element} ela 元素比较 a
//  * @param {Element} elb 元素比较 b
//  * @returns
//  */
// function sameOffsetSourceDom(ela, elb) {
//   let sameSourceEl;

//   let aR = getOffsetParentNodeArr(ela);
//   let bR = getOffsetParentNodeArr(elb);

//   if (aR.length > bR.length) {
//     let a = bR;
//     bR = aR;
//     aR = a;
//   }

//   for (let i = 0; i < aR.length; i++) {
//     for (let j = 0; j < bR.length; j++) {
//       if (aR[i] == bR[j]) {
//         if (aR[i].localName != 'body') {
//           sameSourceEl = aR[i];
//         }
//       }
//     }
//   }

//   return {
//     sameSourceEl,
//     hasSameSourceDom: sameSourceEl.nodeType == 1 ? true : 'only BODY',
//   };
// }

// /**
//  * 获取 元素的 所有祖先元素 直到 body
//  * @param {Element} el dom 元素
//  * @returns
//  */
// function getOffsetParentNodeArr(el) {
//   let arr = [];
//   let elclone = el;
//   for (; elclone['offsetParent'] != null; ) {
//     elclone = elclone['offsetParent'];
//     arr.push(elclone);
//   }
//   return arr;
// }

export { sameOffsetNode };
